﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;

namespace KimberlyDashboardLIB
{
    public class Utilidades
    {
        public static string FormatearMensajeError(string mensaje)
        {
            mensaje = mensaje.Replace("\n", "");
            mensaje = mensaje.Replace("\r", "");
            mensaje = mensaje.Replace("'", "");
            return mensaje;
        }

        /// <summary>
        /// Lee la primera hoja de un archivo de excel y retorna un dataset con la información leída
        /// </summary>
        /// <param name="pathArchivo">Path físico del archivo a leer</param>
        /// <returns></returns>
        public static DataSet LeerExcel(string pathArchivo)
        {
            OleDbConnection cn;
            OleDbDataAdapter cmd;
            DataSet ds = new DataSet();
            string nombreTabla = "";
            cn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" + pathArchivo + ";Extended Properties=Excel 8.0;");
            //cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" + ("Data Source=" + (pathArchivo + ";Extended Properties=\"Excel 12.0;HDR=YES\"")));
            try
            {
                cn.Open();
                //recorre las hojas del archivo y toma la primera
                DataTable schema = new DataTable();
                schema = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new Object[] {null, null, null, "TABLE"});
                nombreTabla = schema.Rows[0][2].ToString();
                schema.Clear();

                cmd = new OleDbDataAdapter("SELECT * FROM [" + nombreTabla + "]", cn);
                cmd.Fill(ds);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally 
            {
                cn.Close();
            }

            return ds;
        }


    }
}
